home *** CD-ROM | disk | FTP | other *** search
Wrap
# Source Generated with Decompyle++ # File: in.pyc (Python 1.3) '''Import a module while pretending its name is __main__. This can be used to run scripts from the PackedLib resource file while pretending they have been double-clicked.''' 'Import a module while pretending its name is __main__. This\ncan be used to run scripts from the PackedLib resource file while pretending\nthey have been double-clicked.' import imp import sys import os import string import Dlg import macfs DIALOG_ID = 512 OK = 1 CANCEL = 2 SCRIPTNAME = 3 ARGV = 4 STDIN_CONS = 5 STDIN_FILE = 6 STDOUT_CONS = 7 STDOUT_FILE = 8 WORKING_DIR = 9 PAUSE = 10 def import_as_main(name): (suffix, mode, type) = (fp, path) if type == imp.PY_SOURCE: imp.load_source('__main__', path, fp) elif type == imp.PY_COMPILED: imp.load_compiled('__main__', path, fp) elif type == imp.PY_RESOURCE: imp.load_resource('__main__', path) def interact(): d = Dlg.GetNewDialog(DIALOG_ID, -1) wdir = stdin = stdout = None pause = 0 (tp, in_c_h, rect) = d.GetDialogItem(STDIN_CONS) (tp, in_f_h, rect) = d.GetDialogItem(STDIN_FILE) (tp, out_c_h, rect) = d.GetDialogItem(STDOUT_CONS) (tp, out_f_h, rect) = d.GetDialogItem(STDOUT_FILE) (tp, pause_h, rect) = d.GetDialogItem(PAUSE) in_c_h = in_c_h.as_Control() in_f_h = in_f_h.as_Control() out_c_h = out_c_h.as_Control() out_f_h = out_f_h.as_Control() pause_h = pause_h.as_Control() while 1: in_c_h.SetControlValue(not stdin) in_f_h.SetControlValue(not (not stdin)) out_c_h.SetControlValue(not stdout) out_f_h.SetControlValue(not (not stdout)) pause_h.SetControlValue(pause) n = Dlg.ModalDialog(None) if n == OK: break elif n == CANCEL: sys.exit(0) elif n == STDIN_CONS: stdin = None elif n == STDIN_FILE: (fss, ok) = macfs.StandardGetFile('TEXT') if ok: stdin = fss elif n == STDOUT_FILE: (fss, ok) = macfs.StandardPutFile('stdout:') if ok: stdout = fss elif n == WORKING_DIR: (fss, ok) = macfs.GetDirectory() if ok: wdir = fss elif n == PAUSE: pause = not pause (tp, h, rect) = d.GetDialogItem(SCRIPTNAME) name = Dlg.GetDialogItemText(h) (tp, h, rect) = d.GetDialogItem(ARGV) argv = Dlg.GetDialogItemText(h) return (name, argv, stdin, stdout, wdir, pause) def main(): curdir = os.getcwd() import Res try: Res.OpenResFile('RunLibScript.rsrc') except: pass (name, argv, stdin, stdout, wdir, pause) = interact() if not name: sys.exit(0) sys.argv = [ name] + string.split(argv) if stdin: sys.stdin = open(stdin.as_pathname()) if stdout: sys.stdout = open(stdout.as_pathname(), 'w') if wdir: os.chdir(wdir.as_pathname()) else: os.chdir(curdir) import_as_main(name) if pause: sys.exit(1) if __name__ == '__main__': main()